import { reqGoodInfo, reqAddOrUpdateShopCart } from "../../api";
// 封装游客身份模块uuid--->生成一个随机字符串（不能在变了）
import { getUUID } from "../../utils/uuid_token";
// detail模块的仓库
const actions = {
  // 获取产品信息的action
  async getGoodInfo({ commit }, skuId) {
    let res = await reqGoodInfo(skuId);
    if (res.code == 200) {
      commit("GETGOODINFO", res.data);
    }
  },
  // 加入购物车的||修改某一个产品的个数
  async addOrUpdateShopCart({ commit }, { skuId, skuNum }) {
    let res = await reqAddOrUpdateShopCart(skuId, skuNum);
    if (res.code == 200) {
      // 返回的是成功的标记
      return "ok";
    } else {
      // 返回的是失败的标记
      return Promise.reject(new Error("faile"));
    }
  },
};

const mutations = {
  GETGOODINFO(state, goodInfo) {
    state.goodInfo = goodInfo;
  },
};

const state = {
  goodInfo: {},
  // 游客临时身份
  uuid_token: getUUID(),
};
// 简化数据
const getters = {
  // 路径导航简化的数据
  categoryView(state) {
    return state.goodInfo.categoryView || {};
  },
  // 简化产品信息的数据
  skuInfo(state) {
    return state.goodInfo.skuInfo || {};
  },
  // 产品售卖属性的简化
  spuSaleAttrList(state) {
    return state.goodInfo.spuSaleAttrList || [];
  },
};

export default {
  actions,
  mutations,
  state,
  getters,
};
